Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Rendered • View rawDownload


vendor/rns_filesync/docker/README.md f89f91e267d8079e6dec86fa9d3139ddbe7f64ce (f89f91e2) Text, 1.89 KB

Docker images for RNS FileSync

Rootless multi-stage runtime and a separate wheel builder.

Runtime image (rootless)

Build:

T282828
docker build -f docker/Dockerfile -t rns-filesync:1.0.0 .

Prepare host dirs owned by uid 1000:

T282828
mkdir -p ./fs-config ./fs-data ./fs-reticulum

Put FileSync config under ./fs-config (config file named config),
Reticulum config under ./fs-reticulum, and the sync tree under ./fs-data.

Run (rootless-friendly, drop capabilities):

T282828
docker run --rm -d Tffea00\
--name rns-filesync Tffea00\
--userTff7b72=T79c0ff1000:1000 Tffea00\
--read-only Tffea00\
--tmpfs /tmp:rw,sizeTff7b72=64m Tffea00\
--security-opt no-new-privileges Tffea00\
--cap-drop ALL Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-config:/config:rwTa5d6ff" Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-data:/data:rwTa5d6ff" Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-reticulum:/reticulum:rwTa5d6ff" Tffea00\
rns-filesync:1.0.0


Override peers or flags:

T282828
docker run --rm --userTff7b72=T79c0ff1000:1000 Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-config:/configTa5d6ff" Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-data:/dataTa5d6ff" Tffea00\
-v Ta5d6ff"Te6edf3$PWDTa5d6ff/fs-reticulum:/reticulumTa5d6ff" Tffea00\
rns-filesync:1.0.0 Tffea00\
--config /config --rnsconfig /reticulum -d /data --no-repl -p PEER_HASH


Check version:

T282828
docker run --rm rns-filesync:1.0.0 -v

Wheel builder

Build wheels inside the image and copy them out:

T282828
mkdir -p dist
docker build -f docker/Dockerfile.build -t rns-filesync-build .
docker run --rm -v Ta5d6ff"Te6edf3$PWDTa5d6ff/dist:/outputTa5d6ff" rns-filesync-build Tffea00\
sh -c Ta5d6ff'cp -a /output/. /output/ 2>/dev/null; ls -la /output'


If the image already wrote wheels under /output during build, extract with:

T282828
Te6edf3cidTff7b72=Tff7b72$(docker create rns-filesync-buildTff7b72)
docker cp Ta5d6ff"Te6edf3$cidTa5d6ff":/output/. ./dist/
docker rm Ta5d6ff"Te6edf3$cidTa5d6ff"


Install a built wheel:

T282828
pipx install dist/rns_filesync-*.whl

Notes

• The runtime user is filesync (uid 1000). Match host volume ownership.
• Network is required for Reticulum interfaces you enable in /reticulum/config.
• Prefer --no-repl for containers and service managers.


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────